首页
学习
活动
专区
圈层
工具
发布

详解Python中的生成器表达式(generator expression)

生成器表达式(generator expression)也叫生成器推导式或生成器解析式,用法与列表推导式非常相似,在形式上生成器推导式使用圆括号(parentheses)作为定界符,而不是列表推导式所使用的方括号...与列表推导式最大的不同是,生成器推导式的结果是一个生成器对象。...生成器对象类似于迭代器对象,具有惰性求值的特点,只在需要时生成新元素,比列表推导式具有更高的效率,空间占用非常少,尤其适合大数据处理的场合。...#创建生成器对象 >>> g = ((i+2)**2 for i in range(10)) >>> g generator object at 0x0000000003095200...> #将生成器对象转换为元组 >>> tuple(g) (4, 9, 16, 25, 36, 49, 64, 81, 100, 121) #生成器对象已遍历结束,没有元素了 >>> list(g) []

1.2K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Join()和 List()的 6 种化学反应

    函数将任何 Python 对象转换为字符串表示形式。 结合这三个功能,可以得到以下简单的解决方案,以连接对象列表的字符串表示形式。...print(''.join([str(x) for x in lst])) # 0124 2 十转八 Join +Generator Expression(生成器)+ Str 由于join()函数需要一个字符串列表...(所有Python列表都是可迭代的,但并非所有可迭代对象都是Python列表) 要释放内存,可以使用生成器表达式(无需创建列表所需的方括号): print(''.join(str(x) for x in...lst)) # 0124 3 Join + Generator Expression(生成器) + Custom String Representation(自定义字符串) 对 2 稍作修改是使用自己定义字符串的表示形式...Lambda 函数是未在名称空间中定义的匿名函数 。 语法为:lambda : expression>。

    1.3K10

    读取超级大的单个文件,用这个方法一招搞定,你一定用的着。

    而碰到整个文件都是一行的情况,则按照设定的 $length 按照长度依次读取。 Python的方式 从上述PHP的处理方法可以看到,关键点是按行读取,再按长度读取。...python的处理方法一样,只是掺杂了一些语法糖。 python有一个“生成器”,解决大文件的读取,就靠这个玩意儿。...在python的函数(function)定义中,只要出现了yield表达式(Yield expression),那么事实上定义的是一个generator function, 调用这个generator...其实python还有更优雅便捷的写法,就是for循环读取。像下面这样: ? 或者不用重新定义函数,直接用for循环遍历。 ? 底层使用的原理是一样的。...如果只是要读文件,那么 less 是你最佳的选择。 ? 文档内说的很清楚,less并不直接读入整个文档,因此处理起来,比vi/vim编辑器速度快的多。 打开之后,就可以上下翻页阅读了。

    2K40

    替代for循环,让Python代码更pythonic !

    从我开始探索 Python 中惊人的语言功能到现在已经有一段时间了。一开始,我给自己提出了一个挑战:练习更多的 Python 语法,降低使用for循环的频率。...幸运的是,Python 已经有很多工具可以帮助你完成这些工作,你只需要转移你的思路,并以不同的角度来思考它。..."扁平结构比嵌套结构更好" - The Zen of Python 可以使用的已有的工具来替换 for 循环 1.List Comprehension / Generator 表达式 我们来看一个简单的例子...(item) 如果你喜欢 MapReduce,你也可以使用 map,或者 Python 中的 List Comprehension: result = [do_something_with(item)...for item in item_list] 同样,如果您只想迭代数组中的元素,也可以使用一样的代码 Generator Expression。

    26910

    不要再写Python for循环了

    自从我开始探索 Python 中惊人的语言功能已经有一段时间了。一开始,我给自己一个挑战,目的是让我练习更多的 Python 语言功能,而不是使用其他编程语言的编程经验。这让事情变得越来越有趣!...幸运的是,Python 已经有很多工具可以帮助你完成这些工作,你只需要转移你的思路,并以不同的角度来思考它。..."扁平结构比嵌套结构更好" - The Zen of Python 可以使用的已有的工具来替换 for 循环 1.List Comprehension / Generator 表达式 我们来看一个简单的例子...(item) 如果你喜欢 MapReduce,你也可以使用 map,或者 Python 中的 List Comprehension: result = [do_something_with(item)...for item in item_list] 同样,如果您只想迭代数组中的元素,也可以使用一样的代码 Generator Expression。

    48210
    领券